﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace RTracker.Areas.Recruitment.Models.Vacancy
{
    /// <summary>
    /// Class for Vacancy, used to get and set values of Vacancy properties.
    /// </summary>
    public class CVacancy
    {
        int m_nVacancyId;
        int m_nClientId;
        int m_nOrganizationId;
        DateTime? m_dtOpeningDate;
        int m_nDepartment;
        String m_strVacancyName;
        String m_strVacancyDesc;
        int m_nShift;
        int m_nStatus;
        int m_nAllocatedTo;
        String m_strTechnicalSkills;
        String m_strKeywords;
        int m_nExpirenceRange;
        int m_nSalaryRange;
        int m_nNoticePeriodDays;
        String m_strRolesResponsibilities;
        Boolean m_bIsSoftLocked;
        int m_nSoftLockedBy;
        DateTime? m_dtSoftLockTimestamp;
        Boolean m_bIsHardLocked;
        int m_nHardLockedBy;
        DateTime? m_dtHardLockTimestamp;
        DateTime? m_dtCreateTimestamp;
        int m_nCreatedBy;
        DateTime? m_dtModifiedTimestamp;
        int m_nModifiedBy;
        Boolean m_bDeleteFlag;
        String m_strVacancyIds;
        int m_nPageNumber;
        int m_nRowSize;
        String m_strSortOn;
        String m_strSortType;
        String m_strSearch;
        String m_strSearchOn;
        string m_strSoftlockedByName;
        string m_strHardlockedByName;
        string m_strCreatedByName;
        string m_strModifiedByName;

        /// <summary>
        /// Constructor of the class.
        /// </summary> 
        /// <date_created>7/1/2014</date_created>
        public CVacancy()
        {
            m_nVacancyId = 0;
            m_nClientId = 0;
            m_nOrganizationId = 0;
            m_dtOpeningDate = null;
            m_nDepartment = 0;
            m_strVacancyName = "";
            m_strVacancyDesc = "";
            m_nShift = 0;
            m_nStatus = 0;
            m_nAllocatedTo = 0;
            m_strTechnicalSkills = "";
            m_strKeywords = "";
            m_nExpirenceRange = 0;
            m_nSalaryRange = 0;
            m_nNoticePeriodDays = 0;
            m_strRolesResponsibilities = "";
            m_bIsSoftLocked = false;
            m_nSoftLockedBy = 0;
            m_dtSoftLockTimestamp = null;
            m_bIsHardLocked = false;
            m_nHardLockedBy = 0;
            m_dtHardLockTimestamp = null;
            m_dtCreateTimestamp = null;
            m_nCreatedBy = 0;
            m_dtModifiedTimestamp = null;
            m_nModifiedBy = 0;
            m_bDeleteFlag = false;
            m_strVacancyIds = "";
            m_nPageNumber = 0;
            m_nRowSize = 0;
            m_strSortOn = "";
            m_strSortType = "";
            m_strSearch = "";
            m_strSearchOn = "";
            m_strHardlockedByName = "";
            m_strSoftlockedByName = "";
            m_strCreatedByName = "";
            m_strModifiedByName = "";
        }

        /// <summary>
        /// Constructor of the class.
        /// </summary> 
        /// <date_created>7/1/2014</date_created>
        public CVacancy(int nVacancyId, int nClientId, int nOrganizationId, DateTime? dtOpeningDate, int nDepartment, String strVacancyName, String strVacancyDesc, int nShift
            , int nStatus, int nAllocatedTo, String strTechnicalSkills, String strKeywords, int nExpirenceRange
            , int nSalaryRange, int nNoticePeriodDays, String strRolesResponsibilities, Boolean bIsSoftLocked, int nSoftLockedBy
            , DateTime? dtSoftLockTimestamp, Boolean bIsHardLocked, int nHardLockedBy, DateTime? dtHardLockTimestamp, DateTime? dtCreateTimestamp
            , int nCreatedBy, DateTime? dtModifiedTimestamp, int nModifiedBy, Boolean bDeleteFlag, String strVacancyIds, int nPageNumber, int nRowSize, String strSortOn, String strSortType, String strSearch, String strSearchOn, string strSoftlockedByName, string strHardlockedByName, string strCreatedByName, string strModifiedByName)
        {
            m_nVacancyId = nVacancyId;
            m_nClientId = nClientId;
            m_nOrganizationId = nOrganizationId;
            m_dtOpeningDate = dtOpeningDate;
            m_nDepartment = nDepartment;
            m_strVacancyName = strVacancyName;
            m_strVacancyDesc = strVacancyDesc;
            m_nShift = nShift;
            m_nStatus = nStatus;
            m_nAllocatedTo = nAllocatedTo;
            m_strTechnicalSkills = strTechnicalSkills;
            m_strKeywords = strKeywords;
            m_nExpirenceRange = nExpirenceRange;
            m_nSalaryRange = nSalaryRange;
            m_nNoticePeriodDays = nNoticePeriodDays;
            m_strRolesResponsibilities = strRolesResponsibilities;
            m_bIsSoftLocked = bIsSoftLocked;
            m_nSoftLockedBy = nSoftLockedBy;
            m_dtSoftLockTimestamp = dtSoftLockTimestamp;
            m_bIsHardLocked = bIsHardLocked;
            m_nHardLockedBy = nHardLockedBy;
            m_dtHardLockTimestamp = dtHardLockTimestamp;
            m_dtCreateTimestamp = dtCreateTimestamp;
            m_nCreatedBy = nCreatedBy;
            m_dtModifiedTimestamp = dtModifiedTimestamp;
            m_nModifiedBy = nModifiedBy;
            m_bDeleteFlag = bDeleteFlag;
            m_strVacancyIds = strVacancyIds;
            m_nPageNumber = nPageNumber;
            m_nRowSize = nRowSize;
            m_strSortOn = strSortOn;
            m_strSortType = strSortType;
            m_strSearch = strSearch;
            m_strSearchOn = strSearchOn;
            m_strSoftlockedByName = strSoftlockedByName;
            m_strHardlockedByName = strHardlockedByName;
            m_strCreatedByName = strCreatedByName;
            m_strModifiedByName = strModifiedByName;
        }

        /// <summary>
        /// Used to store VacancyId
        /// </summary>
        public int VacancyId
        {
            get { return m_nVacancyId; }
            set { m_nVacancyId = value; }
        }
        /// <summary>
        /// Used to store ClientId
        /// </summary>
        // Display name of this property
        [DisplayName("Client")]
        public int ClientId
        {
            get { return m_nClientId; }
            set { m_nClientId = value; }
        }
        /// <summary>
        /// Used to store OrganizationId
        /// </summary>
        // Display name of this property
        [DisplayName("Organization")]
        public int OrganizationId
        {
            get { return m_nOrganizationId; }
            set { m_nOrganizationId = value; }
        }
        /// <summary>
        /// Used to store SoftLockTimestamp
        /// </summary>
        // Display name of this property
        [DisplayName("Opening on")]
        public DateTime? OpeningDate
        {
            get { return m_dtOpeningDate; }
            set { m_dtOpeningDate = value; }
        }
        /// <summary>
        /// Used to store Department
        /// </summary>
        // Display name of this property
        [DisplayName("Department")]
        public int Department
        {
            get { return m_nDepartment; }
            set { m_nDepartment = value; }
        }
        /// <summary>
        /// Used to store VacancyName
        /// </summary>
        // Display name of this property
        [DisplayName("Name")]
        public String VacancyName
        {
            get { return m_strVacancyName; }
            set { m_strVacancyName = value; }
        }

        /// <summary>
        /// Used to store VacancyName
        /// </summary>
        // Display name of this property
        [DisplayName("Description")]
        public String VacancyDesc
        {
            get { return m_strVacancyDesc; }
            set { m_strVacancyDesc = value; }
        }
        /// <summary>
        /// Used to store Shift
        /// </summary>
        // Display name of this property
        [DisplayName("Shift")]
        public int Shift
        {
            get { return m_nShift; }
            set { m_nShift = value; }
        }
        /// <summary>
        /// Used to store Status
        /// </summary>
        // Display name of this property
        [DisplayName("Status")]
        public int Status
        {
            get { return m_nStatus; }
            set { m_nStatus = value; }
        }
        /// <summary>
        /// Used to store AllocatedTo
        /// </summary>
        // Display name of this property
        [DisplayName("Managed By")]
        public int AllocatedTo
        {
            get { return m_nAllocatedTo; }
            set { m_nAllocatedTo = value; }
        }
        /// <summary>
        /// Used to store TechnicalSkills
        /// </summary>
        // Display name of this property
        [DisplayName("Skills")]
        public String TechnicalSkills
        {
            get { return m_strTechnicalSkills; }
            set { m_strTechnicalSkills = value; }
        }
        /// <summary>
        /// Used to store Keywords
        /// </summary>
        // Display name of this property
        [DisplayName("Keywords")]
        public String Keywords
        {
            get { return m_strKeywords; }
            set { m_strKeywords = value; }
        }
        /// <summary>
        /// Used to store ExpirenceRange
        /// </summary>
        // Display name of this property
        [DisplayName("Expirence")]
        public int ExpirenceRange
        {
            get { return m_nExpirenceRange; }
            set { m_nExpirenceRange = value; }
        }
        /// <summary>
        /// Used to store SalaryRange
        /// </summary>
        // Display name of this property
        [DisplayName("Salary")]
        public int SalaryRange
        {
            get { return m_nSalaryRange; }
            set { m_nSalaryRange = value; }
        }
        /// <summary>
        /// Used to store NoticePeriodDays
        /// </summary>
        // Display name of this property
        [DisplayName("Notice Period")]
        public int NoticePeriodDays
        {
            get { return m_nNoticePeriodDays; }
            set { m_nNoticePeriodDays = value; }
        }
        /// <summary>
        /// Used to store RolesResponsibilities
        /// </summary>
        // Display name of this property
        [DisplayName("Job Roles")]
        public String RolesResponsibilities
        {
            get { return m_strRolesResponsibilities; }
            set { m_strRolesResponsibilities = value; }
        }
        /// <summary>
        /// Used to store IsSoftLocked
        /// </summary>
        public Boolean IsSoftLocked
        {
            get { return m_bIsSoftLocked; }
            set { m_bIsSoftLocked = value; }
        }
        /// <summary>
        /// Used to store SoftLockedBy
        /// </summary>
        // Display name of this property
        [DisplayName("Viewed By")]
        public int SoftLockedBy
        {
            get { return m_nSoftLockedBy; }
            set { m_nSoftLockedBy = value; }
        }
        /// <summary>
        /// Used to store SoftLockTimestamp
        /// </summary>
        public DateTime? SoftLockTimestamp
        {
            get { return m_dtSoftLockTimestamp; }
            set { m_dtSoftLockTimestamp = value; }
        }
        /// <summary>
        /// Used to store IsHardLocked
        /// </summary>
        public Boolean IsHardLocked
        {
            get { return m_bIsHardLocked; }
            set { m_bIsHardLocked = value; }
        }
        /// <summary>
        /// Used to store HardLockedBy
        /// </summary>
        // Display name of this property
        [DisplayName("Locked By")]
        public int HardLockedBy
        {
            get { return m_nHardLockedBy; }
            set { m_nHardLockedBy = value; }
        }
        /// <summary>
        /// Used to store HardLockTimestamp
        /// </summary>
        public DateTime? HardLockTimestamp
        {
            get { return m_dtHardLockTimestamp; }
            set { m_dtHardLockTimestamp = value; }
        }
        /// <summary>
        /// Used to store CreateTimestamp
        /// </summary>
        // Display name of this property
        [DisplayName("Created On")]
        public DateTime? CreateTimestamp
        {
            get { return m_dtCreateTimestamp; }
            set { m_dtCreateTimestamp = value; }
        }
        /// <summary>
        /// Used to store CreatedBy
        /// </summary>
        // Display name of this property
        [DisplayName("Created By")]
        public int CreatedBy
        {
            get { return m_nCreatedBy; }
            set { m_nCreatedBy = value; }
        }
        /// <summary>
        /// Used to store ModifiedTimestamp
        /// </summary>
        // Display name of this property
        [DisplayName("Modified On")]
        public DateTime? ModifiedTimestamp
        {
            get { return m_dtModifiedTimestamp; }
            set { m_dtModifiedTimestamp = value; }
        }
        /// <summary>
        /// Used to store ModifiedBy
        /// </summary>
        // Display name of this property
        [DisplayName("Modified By")]
        public int ModifiedBy
        {
            get { return m_nModifiedBy; }
            set { m_nModifiedBy = value; }
        }
        /// <summary>
        /// Used to store DeleteFlag
        /// </summary>
        public Boolean DeleteFlag
        {
            get { return m_bDeleteFlag; }
            set { m_bDeleteFlag = value; }
        }
        /// <summary>
        /// Used to store VacancyIds
        /// </summary>
        public String VacancyIds
        {
            get { return m_strVacancyIds; }
            set { m_strVacancyIds = value; }
        }
        /// <summary>
        /// Used to store PageNumber
        /// </summary>
        public int PageNumber
        {
            get { return m_nPageNumber; }
            set { m_nPageNumber = value; }
        }
        /// <summary>
        /// Used to store RowSize
        /// </summary>
        public int RowSize
        {
            get { return m_nRowSize; }
            set { m_nRowSize = value; }
        }
        /// <summary>
        /// Used to store SortOn
        /// </summary>
        public String SortOn
        {
            get { return m_strSortOn; }
            set { m_strSortOn = value; }
        }
        /// <summary>
        /// Used to store SortType
        /// </summary>
        public String SortType
        {
            get { return m_strSortType; }
            set { m_strSortType = value; }
        }
        /// <summary>
        /// Used to store Search
        /// </summary>
        public String Search
        {
            get { return m_strSearch; }
            set { m_strSearch = value; }
        }
        /// <summary>
        /// Used to store SearchOn
        /// </summary>
        public String SearchOn
        {
            get { return m_strSearchOn; }
            set { m_strSearchOn = value; }
        }

        /// <summary>
        /// Used to store username who owns the softlock.
        /// </summary>
        // Display name of this property
        [DisplayName("Viewed By")]
        public string SoftLockedByName
        {
            get { return m_strSoftlockedByName; }
            set { m_strSoftlockedByName = value; }
        }
        /// <summary>
        /// Used to store username who owns the hardlock.
        /// </summary>
        // Display name of this property
        [DisplayName("Locked By")]
        public string HardLockedByName
        {
            get { return m_strHardlockedByName; }
            set { m_strHardlockedByName = value; }
        }
        /// <summary>
        /// Used to store CreatedBy Name
        /// </summary>
        // Display name of this property
        [DisplayName("Created By")]
        public string CreatedByName
        {

            get { return m_strCreatedByName; }
            set { m_strCreatedByName = value; }
        }
        /// <summary>
        /// Used to store ModifiedBy Name
        /// </summary>
        // Display name of this property
        [DisplayName("Modified By")]
        public string ModifiedByName
        {

            get { return m_strModifiedByName; }
            set { m_strModifiedByName = value; }
        }
    }

}